package main

import (
	"bufio"
	"fmt"
	"gopkg.in/ini.v1"
	"net"
	"os"
	"strings"
)

func getErr(msg string, err error) {
	if err != nil {
		fmt.Printf("%v err->%v\n", msg, err)
	}
}

// 客户端
func main() {
	cfg, err := ini.Load("config.ini")
	if err != nil {
		getErr("load config", err)
		return
	}

	host := cfg.Section("dst").Key("host").String()
	conn, err := net.Dial("udp", host)
	if err != nil {
		fmt.Println("err :", err)
		return
	}
	defer func(conn net.Conn) {
		err := conn.Close()
		if err != nil {
		}
	}(conn) // 关闭连接
	inputReader := bufio.NewReader(os.Stdin)
	fmt.Printf("[1]切换到二所系统\n[2]切换到indra系统\n请选择：")
	input, _ := inputReader.ReadString('\n') // 读取用户输入
	inputInfo := strings.Trim(input, "\r\n")
	if inputInfo == "1" || inputInfo == "2" {
		_, err = conn.Write([]byte(inputInfo)) // 发送数据
		if err != nil {
			getErr("发送失败：", err)
			return
		}
		data := make([]byte, 4096)
		dataRead, err := conn.Read(data)
		if err != nil {
			getErr("切换失败：", err)
			return
		}
		if string(data[:dataRead]) == "fail" {
			fmt.Println("切换失败")
		} else if string(data[:dataRead]) == "success" {
			fmt.Println("切换成功")
		}
	}
	fmt.Println("按Enter键退出...")
	var tmp string
	fmt.Scanln(&tmp)
}
